home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / MIDI / Euterpe_Installation / Euterpe / Developer / xappmsg.h < prev    next >
C/C++ Source or Header  |  1998-06-24  |  2KB  |  89 lines

  1. // xappmsg.h
  2. // Author : Dominique Lorre
  3. // $Id: xappmsg.h 1.1 1997/09/17 08:09:28 dlorre Exp dlorre $
  4.  
  5. #if !defined( CLASS_XAPPMSG_H )
  6. #define CLASS_XAPPMSG_H
  7.  
  8. #if !defined( EXEC_TYPES_H )
  9. #include <exec/types.h>
  10. #endif
  11.  
  12. #if !defined( EXEC_PORTS_H )
  13. #include <exec/ports.h>
  14. #endif
  15.  
  16. #if !defined( UTILITY_HOOKS_H )
  17. #include <utility/hooks.h>
  18. #endif
  19.  
  20. #if !defined( UTILITY_TAGITEM_H )
  21. #include <utility/tagitem.h>
  22. #endif
  23.  
  24. #define XAPPNAMELENGTH  40
  25. #define XAPPPORTNAME    "Euterpe.xapp"
  26.  
  27. #define XAPP_TagBase    (TAG_USER+100)
  28. #define XAPP_Name       (XAPP_TagBase+1)
  29. #define XAPP_PortName   (XAPP_TagBase+2)
  30. #define XAPP_Type       (XAPP_TagBase+3)
  31. #define XAPP_Handle     (XAPP_TagBase+4)
  32.  
  33. #define FX_TagBase      (TAG_USER+200)
  34. #define FX_Hook         (FX_TagBase+1)
  35.  
  36. #define BANK_TagBase    (TAG_USER+300)
  37. #define BANK_MidiBuffer (BANK_TagBase+1)
  38. #define BANK_MidiLength (BANK_TagBase+2)
  39.  
  40. enum XAppAction {
  41.     XAPPACT_ADD,            // Add the xapp
  42.     XAPPACT_INIT,           // The xapp has successfully initialized it's Port
  43.     XAPPACT_FAILURE,        // The xapp has failed somewhere in it's initialization
  44.     XAPPACT_REMOVE,         // Remove the xapp
  45.     XAPPACT_SHOW,           // Show the xapp window
  46.     XAPPACT_HIDE,           // Hide the xapp window
  47.     XAPPACT_SENDMIDI,       // Send midi to an output
  48.     XAPPACT_RECVMIDI        // Receive midi from an input
  49. };
  50.  
  51. enum XAppType {
  52.     XAPPTYP_UNKWNOWN,          // Default value if not set by the xapp
  53.     XAPPTYP_BANKEDITOR,        // Independent application using Euterpe's IO
  54.     XAPPTYP_EFFECTSPROCESSOR   // Effect controlled by Euterpe
  55. };
  56.  
  57. struct XAppMsg {
  58.     struct Message  xm_Message ;
  59.     enum XAppAction xm_Action ;
  60.     struct TagItem* xm_Tags ;
  61.     APTR            xm_Result ;
  62. } ;
  63.  
  64. struct FXNode 
  65. {
  66.     struct MinNode      x_Node ;
  67.     union {
  68.         UBYTE           x_Data[4] ;
  69.         ULONG           x_Msg ;
  70.     };
  71.     LONG    x_Pos ;     // Position in Sequencer
  72.     LONG    x_Len ;     // Length of a NoteOn
  73. };
  74.  
  75. #define FXNODEB_INUSE   0
  76. #define FXNODEB_ALLOC   1
  77.  
  78. #define FXNODEF_INUSE   (1 << FXNODEB_INUSE)
  79. #define FXNODEF_ALLOC   (1 << FXNODEB_ALLOC)
  80.  
  81. struct FXParams
  82. {
  83.     struct FXNode   *fp_Array ;
  84.     struct MinList  *fp_List ;
  85.     LONG            fp_Size ;
  86.     LONG            fp_Pos ;
  87. };
  88.  
  89. #endif